const { execSync } = require('child_process');
const fs = require('fs');
const path = require('path');

console.log('🚀 开始构建流程...');

try {
  // 1. 清理构建目录
  console.log('📁 清理构建目录...');
  execSync('npm run clean', { stdio: 'inherit' });

  // 2. 类型检查
  console.log('🔍 执行类型检查...');
  execSync('npm run type-check', { stdio: 'inherit' });

  // 3. 代码检查
  console.log('🔍 执行代码检查...');
  execSync('npm run lint', { stdio: 'inherit' });

  // 4. 运行测试
  console.log('🧪 运行测试...');
  execSync('npm test', { stdio: 'inherit' });

  // 5. 生成协议文件
  console.log('📝 生成协议文件...');
  execSync('npm run proto', { stdio: 'inherit' });

  // 6. 构建 TypeScript
  console.log('🔨 构建 TypeScript...');
  execSync('npm run build:ts', { stdio: 'inherit' });

  // 7. 复制资源文件
  console.log('📋 复制资源文件...');
  execSync('npm run copy:assets', { stdio: 'inherit' });

  // 8. 复制环境文件
  console.log('⚙️ 复制环境文件...');
  execSync('npm run copy:env', { stdio: 'inherit' });

  console.log('✅ 构建完成！');
} catch (error) {
  console.error('❌ 构建失败:', error.message);
  process.exit(1);
} 